import logging
import os
import time

class MyLogger():

    def __init__(self):
        # 实例化一个记录器
        self.logger = logging.getLogger()
        # 设置记录器的日志等级
        self.logger.setLevel(logging.INFO)

        # 实例化控制台输出的处理器
        sh = logging.StreamHandler()
        # 设置控制台输出处理器的日志等级
        sh.setLevel(logging.INFO)

        # 处理日志文件路径
        file_path = os.path.join(os.path.dirname(__file__), '..', 'log')
        if not os.path.isdir(file_path):
            os.makedirs(file_path)
        file_name = "{}.log".format(time.strftime("%Y-%m-%d"))
        # 实例化文件输出的处理器
        fh = logging.FileHandler(filename=os.path.join(file_path, file_name), encoding='utf-8')
        # 设置文件输出处理器的日志等级
        fh.setLevel(logging.INFO)

        # 设置日志输出格式
        formatter = logging.Formatter("%(asctime)s|%(levelname)s|%(filename)s|%(lineno)s|%(message)s")
        sh.setFormatter(formatter)
        fh.setFormatter(formatter)

        # 将处理器添加到记录器中
        self.logger.addHandler(sh)
        self.logger.addHandler(fh)

logger = MyLogger().logger

# logger.debug("这是debug级别日志")
# logger.info("这是info级别日志")
# logger.warning("这是warning级别日志")
# logger.error("这是error级别日志")
# logger.critical("这是critical级别日志")